/*
 * @Description: 本地标准输入输出MCP服务
 *   实现基于标准输入输出(stdin/stdout)的MCP协议通信服务
 *   适用于命令行工具、本地服务等场景
 *
 * @Author: 莫若省
 * @date: 2025/9/2
 */

// 导入MCP服务生成器
import { generateMcpServer } from "../mcp/index.js";

// 导入标准输入输出传输模块
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";

/**
 * 创建并启动MCP服务
 *
 * 1. 生成MCP服务实例 - 包含协议解析、路由等核心功能
 * 2. 创建标准IO传输层 - 处理进程间通信
 * 3. 建立连接 - 绑定服务与传输层
 */
const server = generateMcpServer(); // 创建MCP服务核心实例
const transport = new StdioServerTransport(); // 创建基于stdio的传输层

// 连接服务与传输层，开始监听输入输出
await server.connect(transport);

/**
 * 工作流程说明：
 * 1. 通过process.stdin接收输入数据
 * 2. MCP协议解析器处理原始数据
 * 3. 路由到注册的工具进行处理
 * 4. 结果通过process.stdout输出
 *
 * 典型使用场景：
 * - 命令行工具开发
 * - 本地服务进程通信
 * - 与其他语言的程序交互
 */